package net.seratch.taskun.scheduler.crond;

import java.util.List;

/**
 * Crontab configuration
 * 
 * @author Kazuhiro Sera
 */
public class Crontab {

	/**
	 * Crontab line
	 */
	public String line;

	/**
	 * Minute configuration
	 */
	public String minute;

	/**
	 * Minute fixed invocations
	 */
	public List<Integer> minuteFixedInvocations;

	/**
	 * Hour configuration
	 */
	public String hour;

	/**
	 * Hour fixed invocations
	 */
	public List<Integer> hourFixedInvocations;

	/**
	 * Day configuration
	 */
	public String day;

	/**
	 * Day fixed invocations
	 */
	public List<Integer> dayFixedInvocations;

	/**
	 * Month configuration
	 */
	public String month;

	/**
	 * Month fixed invocations
	 */
	public List<Integer> monthFixedInvocations;

	/**
	 * Day of week configuration
	 */
	public String dayOfWeek;

	/**
	 * Day of week fixed invocations
	 */
	public List<Integer> dayOfWeekFixedInvocations;

	/**
	 * Runnable command class name
	 */
	public String commandClassName;

	/**
	 * Named server configurations
	 */
	public List<String> namedServers;

	/**
	 * Is this configuration on interval invocation or not
	 */
	public boolean isIntervalInvocation;

	/**
	 * Invocation interval in seconds
	 */
	public long intervalSeconds;

	/**
	 * Initial invocation interval in seconds
	 */
	public long initialIntervalSeconds;

	/**
	 * Multiplicity of worker daemon-threads at one time
	 */
	public long multiplicity;

	/**
	 * Scheduled time of next invocation time in milliseconds
	 */
	public long nextInvocationTime;

}
